// src/common/dto/pagination-query.dto.ts
import { IsInt, IsOptional, IsString, Min } from 'class-validator';
import { Type } from 'class-transformer';
import { ApiProperty } from '@nestjs/swagger';

export class PaginationQueryDto {
    @ApiProperty({
        required: false,
        type: Number,
        description: 'Page number',
        default: 1,
    })
    @IsOptional()
    @Type(() => Number)
    @IsInt()
    @Min(1)
    page?: number;

    @ApiProperty({
        required: false,
        type: Number,
        description: 'Limit',
        default: 10,
    })
    @IsOptional()
    @Type(() => Number)
    @IsInt()
    @Min(1)
    limit?: number;

    // @ApiProperty({
    //     required: false,
    //     type: Number,
    //     description: 'Offset',
    //     default: 0,
    // })

    // @IsOptional()
    // @Type(() => Number)
    // @IsInt()
    // @Min(0)
    // offset?: number;

    @IsOptional()
    @IsString()
    sortField?: string;
  
    @IsOptional()
    @IsString()
    sortOrder?: 'ASC' | 'DESC';
}
